home *** CD-ROM | disk | FTP | other *** search
/ Sound Fx / Sound Fx.iso / Software / UNZIPED / DWSTKW / VB / VB4 / PLAY32 / PLAYSTK.FRM (.txt) < prev    next >
Encoding:
Visual Basic Form  |  1996-03-24  |  14.4 KB  |  455 lines

  1. VERSION 4.00
  2. Begin VB.Form frmMain 
  3.    BorderStyle     =   3  'Fixed Dialog
  4.    Caption         =   "DiamondWare's Sound ToolKit Demo (Visual Basic 4 Version - 32 bit)"
  5.    ClientHeight    =   3525
  6.    ClientLeft      =   1845
  7.    ClientTop       =   3705
  8.    ClientWidth     =   7020
  9.    Height          =   3930
  10.    Icon            =   "PlaySTK.frx":0000
  11.    Left            =   1785
  12.    LinkTopic       =   "Form1"
  13.    MaxButton       =   0   'False
  14.    MinButton       =   0   'False
  15.    ScaleHeight     =   3525
  16.    ScaleWidth      =   7020
  17.    ShowInTaskbar   =   0   'False
  18.    Top             =   3360
  19.    Width           =   7140
  20.    Begin VB.CheckBox chkLR 
  21.       Caption         =   "Left<->Right"
  22.       Height          =   345
  23.       Left            =   5745
  24.       TabIndex        =   16
  25.       Top             =   705
  26.       Width           =   1245
  27.    End
  28.    Begin VB.OptionButton optRate 
  29.       Caption         =   "44,100kHZ"
  30.       Height          =   195
  31.       Index           =   2
  32.       Left            =   5715
  33.       TabIndex        =   12
  34.       Top             =   2820
  35.       Width           =   1410
  36.    End
  37.    Begin VB.OptionButton optRate 
  38.       Caption         =   "22,050kHZ"
  39.       Height          =   195
  40.       Index           =   1
  41.       Left            =   5715
  42.       TabIndex        =   11
  43.       Top             =   2460
  44.       Width           =   1410
  45.    End
  46.    Begin VB.OptionButton optRate 
  47.       Caption         =   "11,025kHZ"
  48.       Height          =   195
  49.       Index           =   0
  50.       Left            =   5730
  51.       TabIndex        =   10
  52.       Top             =   2085
  53.       Value           =   -1  'True
  54.       Width           =   1410
  55.    End
  56.    Begin VB.CommandButton cmdCommand 
  57.       Caption         =   "&Stop"
  58.       Height          =   345
  59.       Index           =   5
  60.       Left            =   2040
  61.       TabIndex        =   9
  62.       Top             =   3075
  63.       Width           =   855
  64.    End
  65.    Begin VB.CommandButton cmdCommand 
  66.       Caption         =   "&Remove"
  67.       Height          =   345
  68.       Index           =   2
  69.       Left            =   3000
  70.       TabIndex        =   8
  71.       Top             =   3075
  72.       Width           =   855
  73.    End
  74.    Begin VB.CommandButton cmdCommand 
  75.       Caption         =   "&New"
  76.       Height          =   345
  77.       Index           =   0
  78.       Left            =   135
  79.       TabIndex        =   7
  80.       Top             =   3075
  81.       Width           =   840
  82.    End
  83.    Begin VB.VScrollBar vsbModifier 
  84.       Height          =   2400
  85.       Index           =   2
  86.       Left            =   5280
  87.       Max             =   16
  88.       Min             =   1
  89.       TabIndex        =   4
  90.       Top             =   600
  91.       Value           =   1
  92.       Width           =   270
  93.    End
  94.    Begin VB.VScrollBar vsbModifier 
  95.       Height          =   2400
  96.       Index           =   1
  97.       Left            =   4620
  98.       Max             =   16
  99.       Min             =   1
  100.       TabIndex        =   3
  101.       Top             =   600
  102.       Value           =   1
  103.       Width           =   270
  104.    End
  105.    Begin VB.VScrollBar vsbModifier 
  106.       Height          =   2400
  107.       Index           =   0
  108.       Left            =   4200
  109.       Max             =   16
  110.       Min             =   1
  111.       TabIndex        =   2
  112.       Top             =   600
  113.       Value           =   1
  114.       Width           =   270
  115.    End
  116.    Begin VB.CommandButton cmdCommand 
  117.       Caption         =   "&Play"
  118.       Height          =   345
  119.       Index           =   1
  120.       Left            =   1095
  121.       TabIndex        =   1
  122.       Top             =   3075
  123.       Width           =   840
  124.    End
  125.    Begin VB.ListBox lstSounds 
  126.       Height          =   2385
  127.       IntegralHeight  =   0   'False
  128.       Left            =   75
  129.       TabIndex        =   0
  130.       Top             =   600
  131.       Width           =   3990
  132.    End
  133.    Begin VB.Label lblLabel 
  134.       Alignment       =   2  'Center
  135.       Caption         =   "R"
  136.       Height          =   225
  137.       Index           =   3
  138.       Left            =   4620
  139.       TabIndex        =   15
  140.       Top             =   300
  141.       Width           =   240
  142.    End
  143.    Begin VB.Label lblLabel 
  144.       Alignment       =   2  'Center
  145.       Caption         =   "L"
  146.       Height          =   225
  147.       Index           =   4
  148.       Left            =   4200
  149.       TabIndex        =   14
  150.       Top             =   300
  151.       Width           =   240
  152.    End
  153.    Begin VB.Label lblLabel 
  154.       Alignment       =   2  'Center
  155.       Caption         =   "List of Sounds and Music to Play"
  156.       Height          =   240
  157.       Index           =   2
  158.       Left            =   900
  159.       TabIndex        =   13
  160.       Top             =   180
  161.       Width           =   2595
  162.    End
  163.    Begin VB.Image imgIcon 
  164.       Height          =   480
  165.       Left            =   75
  166.       Picture         =   "PlaySTK.frx":030A
  167.       Top             =   75
  168.       Width           =   480
  169.    End
  170.    Begin MSComDlg.CommonDialog dlgFile 
  171.       Left            =   6240
  172.       Top             =   60
  173.       _Version        =   65536
  174.       _ExtentX        =   847
  175.       _ExtentY        =   847
  176.       _StockProps     =   0
  177.    End
  178.    Begin VB.Label lblLabel 
  179.       Alignment       =   2  'Center
  180.       Caption         =   "Pitch"
  181.       Height          =   225
  182.       Index           =   1
  183.       Left            =   5115
  184.       TabIndex        =   6
  185.       Top             =   3135
  186.       Width           =   600
  187.    End
  188.    Begin VB.Label lblLabel 
  189.       Alignment       =   2  'Center
  190.       Caption         =   "Volume"
  191.       Height          =   225
  192.       Index           =   0
  193.       Left            =   4155
  194.       TabIndex        =   5
  195.       Top             =   3120
  196.       Width           =   825
  197.    End
  198. Attribute VB_Name = "frmMain"
  199. Attribute VB_Creatable = False
  200. Attribute VB_Exposed = False
  201. Option Explicit
  202. Const I_CMD_LOAD = 0
  203. Const I_CMD_PLAY = 1
  204. Const I_CMD_REMOVE = 2
  205. Const I_CMD_EXIT = 3
  206. Const I_CMD_STOP = 5
  207. Const I_VSB_LVOL = 0
  208. Const I_VSB_RVOL = 1
  209. Const I_VSB_PITCH = 2
  210. Const I_OPT_11K = 0
  211. Const I_OPT_22K = 1
  212. Const I_OPT_44K = 2
  213. Dim miLastSoundNum As Integer
  214. Dim milDir As Integer
  215. Dim mirDir As Integer
  216. Private Sub chkLR_Click()
  217.     dws_DClear
  218.     dws_MClear
  219.     dws_Kill
  220.     If chkLR.Value = False Then
  221.         dws_ID.flags = 0
  222.     Else
  223.         dws_ID.flags = dws_ideal_SWAPLR
  224.     End If
  225.     If dws_Init(dws_DR, dws_ID) = dws_NOSUCCESS Then
  226.         dwsShowError
  227.     End If
  228. End Sub
  229. Private Sub cmdCommand_Click(Index As Integer)
  230.     Dim sString As String
  231.     Dim iIndex As Integer
  232.     Dim iStatus As Integer
  233.     On Error GoTo CCE
  234.     Select Case Index
  235.         Case I_CMD_STOP
  236.             dws_MClear
  237.             dws_DClear
  238.         
  239.         Case I_CMD_LOAD
  240.             ' Load a default
  241.             dlgFile.FileName = ""
  242.             dlgFile.InitDir = App.Path
  243.             dlgFile.Filter = "Wave, DWD, MIDI Files (*.wav;*.dwd;*.mid)|*.wav;*.dwd;*.mid"
  244.             dlgFile.Action = CD_ACTION_OPEN
  245.             sString = dlgFile.FileName
  246.             If Len(sString) Then
  247.                 If InStr(UCase(sString), ".MID") Then
  248.                     lstSounds.AddItem sString
  249.                     lstSounds.ItemData(lstSounds.ListCount - 1) = -1
  250.                 ElseIf InStr(UCase(sString), ".WAV") Then
  251.                     iIndex = dwsLoadWave(sString)
  252.                     If iIndex > -1 Then
  253.                         lstSounds.AddItem CStr(gtSI(iIndex).Rate) + ", " + sString
  254.                         lstSounds.ItemData(lstSounds.ListCount - 1) = iIndex
  255.                     End If
  256.                 ElseIf InStr(UCase(sString), ".DWD") Then
  257.                     iIndex = dwsLoadWave(sString)
  258.                     If iIndex > -1 Then
  259.                         lstSounds.AddItem CStr(gtSI(iIndex).Rate) + ", " + sString
  260.                         lstSounds.ItemData(lstSounds.ListCount - 1) = iIndex
  261.                     End If
  262.                 End If
  263.                 lstSounds.ListIndex = (lstSounds.ListCount - 1)
  264.                 vsbModifier_Change 0
  265.             End If
  266.             
  267.         Case I_CMD_PLAY
  268.             If lstSounds.ListIndex > -1 Then
  269.                 If lstSounds.ItemData(lstSounds.ListIndex) = -1 Then
  270.                     ' MIDI!
  271.                     Dim tMPlay As dws_MPlay
  272.                     tMPlay.track = lstSounds.List(lstSounds.ListIndex)
  273.                     tMPlay.count = 1
  274.                     iStatus = dws_MPlay(tMPlay)
  275.                         
  276.                     If iStatus = 0 Then
  277.                         dwsShowError
  278.                     End If
  279.                 Else
  280.                     dwsPlayWave lstSounds.ItemData(lstSounds.ListIndex), 1
  281.                     miLastSoundNum = gtSI(lstSounds.ItemData(lstSounds.ListIndex)).soundnum
  282.                 End If
  283.             End If
  284.             
  285.         Case I_CMD_REMOVE
  286.             If lstSounds.ListIndex > -1 Then
  287.                 If lstSounds.ItemData(lstSounds.ListIndex) > -1 Then
  288.                     ' A Wave!
  289.                     If Not dwsUnloadWave(lstSounds.ItemData(lstSounds.ListIndex)) Then
  290.                         MsgBox "Error unloading Wave File!"
  291.                     End If
  292.                 End If
  293.                 
  294.                 lstSounds.RemoveItem lstSounds.ListIndex
  295.             
  296.             End If
  297.             
  298.         Case Else
  299.     End Select
  300. CCER:
  301.     Exit Sub
  302.     MsgBox "Error '" + Error + "' occurred in FRMMAIN:cmdCommand_Click!"
  303.     Resume CCER
  304. End Sub
  305. Private Sub Form_Load()
  306.     ' Center the form!
  307.     Dim sString As String
  308.     Dim lResult As Long
  309.     ReDim gtSI(0) As SoundInfo
  310.     Me.Move (Screen.Width / 2) - (Me.Width / 2), (Screen.Height / 2) - (Me.Height / 2)
  311.     If dws_DetectHardWare(dws_DR) = dws_NOSUCCESS Then
  312.         dwsShowError
  313.         End
  314.     End If
  315.     ' No sound card (or something that's weird)
  316.     If dws_DR.digcaps = 0 Then
  317.         MsgBox "Your computer does not support sound playback.", vbExclamation, "Sound Toolkit Error"
  318.         End
  319.     End If
  320.     ' Does the sound card support the minimum requirements?
  321.     If (dws_DR.digcaps And dws_digcap_11025_08_2) = False Then
  322.         sString = "DiamondWare's Sound ToolKit for Windows supports sound playback on your computer.  "
  323.         sString = sString + "However, this demo requires 8-bit stereo "
  324.         sString = sString + "which your computer does not support.  "
  325.         sString = sString + "Your sound hardware does not support "
  326.         sString = sString + "11025Hz, two channel, 8 bit sound "
  327.         sString = sString + "This demo will not run properly on your computer."
  328.         
  329.         MsgBox sString, vbExclamation, "Sound Toolkit Error"
  330.         End
  331.     End If
  332.       
  333.     ' Detect and select the best MIDI deivce to use!
  334.     If dws_DR.muscaps And dws_muscap_MAPPER Then
  335.         lResult = dws_muscap_MAPPER
  336.     ElseIf dws_DR.muscaps And dws_muscap_FMSYNTH Then
  337.         lResult = dws_muscap_FMSYNTH
  338.     ElseIf dws_DR.muscaps And dws_muscap_SYNTH Then
  339.         lResult = dws_muscap_SYNTH
  340.     ElseIf dws_DR.muscaps And dws_muscap_SQSYNTH Then
  341.         lResult = dws_muscap_SQSYNTH
  342.     ElseIf dws_DR.muscaps And dws_muscap_MIDIPORT Then
  343.         lResult = dws_muscap_MIDIPORT
  344.     End If
  345.     ' Set up the 'ideal' music type!
  346.     dws_ID.mustyp = lResult
  347.     dws_ID.digtyp = dws_digcap_11025_08_2
  348.     dws_ID.dignvoices = 6
  349.     If dws_Init(dws_DR, dws_ID) = dws_NOSUCCESS Then
  350.         dwsShowError
  351.     End If
  352.     vsbModifier(I_VSB_LVOL).Value = 8
  353.     vsbModifier(I_VSB_RVOL).Value = 8
  354.     vsbModifier(I_VSB_PITCH).Value = 8
  355. End Sub
  356. Private Sub Form_Unload(Cancel As Integer)
  357.     Dim iLoop As Integer
  358.     dws_DClear
  359.     dws_MClear
  360.     ' Unload all loaded wave files!
  361.     If giNumSounds > 0 Then
  362.         For iLoop = 0 To UBound(gtSI)
  363.             dwsUnloadWave iLoop
  364.         Next iLoop
  365.     End If
  366.     If dws_Kill() = dws_NOSUCCESS Then
  367.         dwsShowError
  368.     End If
  369. End Sub
  370. Private Sub lstSounds_DblClick()
  371.     cmdCommand_Click (I_CMD_PLAY)
  372. End Sub
  373. Private Sub optRate_Click(Index As Integer)
  374.     dws_DClear
  375.     dws_MClear
  376.     dws_Kill
  377.     Select Case Index
  378.         Case I_OPT_11K
  379.             dws_ID.digtyp = dws_digcap_11025_08_2
  380.         Case I_OPT_22K
  381.             dws_ID.digtyp = dws_digcap_22050_08_2
  382.         Case I_OPT_44K
  383.             dws_ID.digtyp = dws_digcap_44100_08_2
  384.         Case Else
  385.     End Select
  386.     If dws_Init(dws_DR, dws_ID) = dws_NOSUCCESS Then
  387.         dwsShowError
  388.     End If
  389. End Sub
  390. Private Sub vsbModifier_Change(Index As Integer)
  391.     Dim iStatus As Integer
  392.     Dim iValue As Integer
  393.     Dim iValue2 As Integer
  394.     Dim iIndex As Integer
  395.     ' Are we changing the volume of a WAVE or MIDI?
  396.     If lstSounds.ListIndex > -1 Then
  397.         If lstSounds.ItemData(lstSounds.ListIndex) = -1 Then
  398.              ' It's a MIDI!
  399.             iValue = ((16 - vsbModifier(I_VSB_LVOL).Value) * 16) - 1
  400.             iValue2 = ((16 - vsbModifier(I_VSB_RVOL).Value) * 16) - 1
  401.             'dws_XMusic iValue, iValue2
  402.             Exit Sub
  403.         End If
  404.     End If
  405.     ' Assign the Sound Num
  406.     If lstSounds.ListIndex = -1 Then
  407.         gPlay.soundnum = 0
  408.     Else
  409.         iIndex = lstSounds.ItemData(lstSounds.ListIndex)
  410.         gPlay.soundnum = gtSI(iIndex).soundnum
  411.     End If
  412.         
  413.     ' Get the current play information associated
  414.     ' with the sound num.
  415.     dws_DGetInfo gPlay, ByVal 0&
  416.         
  417.     ' Adjsut the value
  418.     Select Case Index
  419.         Case I_VSB_PITCH
  420.             iValue = vsbModifier(Index).Value
  421.         Case Else
  422.             iValue = (16 - vsbModifier(Index).Value)
  423.     End Select
  424.     If iValue >= 8 Then
  425.         iValue = (iValue - 7) * 256
  426.     Else
  427.         iValue = iValue * 32
  428.     End If
  429.     Select Case Index
  430.         Case I_VSB_LVOL
  431.             gPlay.flags = dws_dplay_LVOL
  432.             gPlay.lvol = iValue
  433.         
  434.         Case I_VSB_RVOL
  435.             gPlay.flags = dws_dplay_RVOL
  436.             gPlay.rvol = iValue
  437.         
  438.         Case I_VSB_PITCH
  439.             gPlay.flags = dws_dplay_PITCH
  440.             gPlay.pitch = iValue
  441.         
  442.         Case Else
  443.     End Select
  444.     If lstSounds.ListIndex = -1 Then
  445.         gPlay.soundnum = 0
  446.     Else
  447.         gPlay.soundnum = gtSI(iIndex).soundnum
  448.     End If
  449.     ' Assign the new Play Information
  450.     dws_DSetInfo gPlay, ByVal 0&
  451. End Sub
  452. Private Sub vsbModifier_Scroll(Index As Integer)
  453.     vsbModifier_Change Index
  454. End Sub
  455.